<?php
// +----------------------------------------------------------------------
// | likeadmin快速开发前后端分离管理后台（PHP版）
// +----------------------------------------------------------------------
// | 欢迎阅读学习系统程序代码，建议反馈是我们前进的动力
// | 开源版本可自由商用，可去除界面版权logo
// | gitee下载：https://gitee.com/likeshop_gitee/likeadmin
// | github下载：https://github.com/likeshop-github/likeadmin
// | 访问官网：https://www.likeadmin.cn
// | likeadmin团队 版权所有 拥有最终解释权
// +----------------------------------------------------------------------
// | author: likeadminTeam
// +----------------------------------------------------------------------

namespace app\common\model;


use app\common\model\BaseModel;
use app\common\model\user\User;

/**
 * 保单
 * @property $id   id
 * @property $name   产品名称
 * @property $img   图片
 * @property $status   状态（-10 已退款 0待付款 10 已付款 20 生效 25 已完成 ）
 * @property $create_time   创建时间
 * @property $update_time   修改时间
 * @property $delete_time   删除时间
 * @property $total_num   次数
 * @property $start_date   开始时间
 * @property $end_date   结束时间
 * @property $user_id   用户
 * @property $order_no   保单号
 * @property $left_num   剩余次数
 * @property $price   价格
 * @property $spec   机型
 * @property $disk   硬盘
 * @property $brand   品牌
 * @property $check_status   投保状态  -1 拒绝  0 待审核 1 通过
 * @property $product_type_id   产品类型
 * @property $status_text   
 * @property InsuranceOrder   $orderinfo   
 * @property User   $user   
 * @property Model   $modeinfo   
*/

class InsurancePolicy extends BaseModel
{


    protected $name = 'insurance_policy';

    const STATUS_WAIT_PAY = 0;
    const STATUS_PAY = 10;
    /**
     * 审核通过
     */
    const STATUS_EFFECTIVE = 20;
    /**
     * 审核拒绝 退款
     */
    const STATUS_REFUND = -10;

    const StATUS_FINISH = 25;

    protected $append = [
        'status_text'
    ];

     public function scopePaid()
     {
         return $this->where('status', self::STATUS_PAY);
     }

    public function scopeEffective(){

        return $this->where('status', self::STATUS_EFFECTIVE);
    }

    public function getStatusTextAttr($value, $data)
    {
        $status = [
            self::STATUS_WAIT_PAY  => '待付款',
            self::STATUS_PAY       => '待审核',
            self::STATUS_EFFECTIVE => '已生效',
            self::STATUS_REFUND    => '已退款',
            self::StATUS_FINISH    => '已失效',
        ];
        return $status[$data['status']] ?? '';
    }


    public function orderinfo()
    {

        return $this->belongsTo(InsuranceOrder::class,'order_no','order_no');
    }

    public function user()
    {
        return $this->belongsTo(User::class, 'user_id');
    }

    public function modeinfo()
    {

        return $this->belongsTo(Model::class, 'model_id');
    }

}